home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 3: Developer Tools / Linux Cubed Series 3 - Developer Tools.iso / devel / db / esm-3.1 / esm-3 / usr / local / sm / src / makefile.common next >
Encoding:
Makefile  |  1996-05-05  |  7.0 KB  |  290 lines

  1. #
  2. # $RCSfile: makefile.common,v $ 
  3. # $Revision: 1.1.1.1 $ $Date: 1996/05/04 21:55:06 $
  4. #
  5. include $(PATHTOROOT)/makefile.install
  6. include $(PATHTOROOT)/makefile.options
  7.  
  8. .SUFFIXES: .rcslock .h .C .o .c .rcsdiff .co .ci .h-rcsdiff .c-rcsdiff .C-rcsdiff .h-ci .c-ci .C-ci .h-co .c-co .C-co
  9.     
  10. .DEFAULT:
  11.     @echo No such target: $* for `pwd`.
  12.  
  13. # default for every make file.
  14. default:    workspace.mod
  15.  
  16. RCSFILES = $(MAKEFILES) $(FILESC) $(FILESH) $(LOCALRCSFILES)
  17. RCSDIR=$(BASELINE)/$(PARENT)/$(MODULE)/RCS
  18. GLOBALINCLUDE=-I$(PATHTOROOT)/include -I$(PATHTOROOT)/common/include
  19.  
  20. ALLFLAGS=$(LOCALINCLUDE)\
  21.         $(SPECIALINCLUDE)\
  22.         $(GLOBALINCLUDE)\
  23.         $(LOCAL_FLAGS)
  24.  
  25. CFLAGS= $(ALLFLAGS) $(DEBUGFLAGS)
  26. COMPILE.C = $(CPLUSPLUS) $(LDFLAGS) $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c
  27.  
  28. #workspace.mod:    workspace.mod.recursive $(FILESO) $(EXECS) $(LINKS) $(PTREP)
  29. #workspace.mod:    workspace.mod.recursive $(FILESO) $(EXECS) $(LINKS)
  30. workspace.mod:    workspace.mod.recursive $(EXECS) $(LINKS)
  31.  
  32. workspace.mod.recursive: $(MOD_WORKSPACE) true
  33.     for i in `echo ${MOD_WORKSPACE}`;\
  34.         do (cd $$i; $(MAKE) workspace.mod); done;
  35.  
  36. workspace: workspace.1level workspace.recursive 
  37.  
  38. workspace.1level: makefile
  39.  
  40. workspace.1level: $(RCSFILES) $(COPIES) $(MOD_WORKSPACE) $(MOD_BASELINE) 
  41. #    Creating makefile is only necessary if this directory has non-empty
  42. #    MOD_WORKSPACE and non-empty MOD_BASELINE. This kludge accomplishes that.
  43.     -for i in `echo ${LINKS}`;\
  44.         do (ln -s $$i . ); done;
  45.  
  46. makefile:
  47.     -for i in `echo $(LITTLEMAKEFILE)`; do (\
  48.         cp Makefile makefile;\
  49.         chmod ug+w makefile;\
  50.     ); done;
  51.  
  52. workspace.recursive: $(MOD_WORKSPACE)
  53.     -for i in `echo $(MOD_WORKSPACE)`;\
  54.         do (cd $$i; $(MAKE) workspace); done;
  55. #
  56. #  create the directory structure, item-at-a-time - target "workspace"
  57. #    depends on this.  dummymodules is there to keep the makefile 
  58. #  syntax ok even if $(MOD_WORKSPACE) and $(MOD_BASELINE) are empty.
  59. #
  60. $(MOD_WORKSPACE) $(MOD_BASELINE) dummymodules:
  61.     (    mkdir $@;\
  62.         cd $@;\
  63.         touch makefile.depend;\
  64.         co -q $(BASELINE)/$(PARENT)/$(MODULE)/$@/RCS/[mM]akefile*,v; \
  65.         $(MAKE) makefile;\
  66.     )
  67.  
  68. #
  69. clean: $(MOD_WORKSPACE)
  70.     for i in `echo $(MOD_WORKSPACE)`;\
  71.         do (\
  72.             cd $$i; \
  73.             $(MAKE) $@\
  74.         ); done;
  75.     -rm -f *.o $(LOCALCLEANFILES) $(EXECS) ./$(MODULE)\
  76.         tags* junk made makefile.depend makefile.depend.bak\
  77.         sed.script 
  78.     touch makefile.depend 
  79.  
  80. $(RCSFILES) dummyrcsfiles:
  81.     co $(LOCK) $(RCSDIR)/$@,v
  82.  
  83. zerodepend:
  84.     cat /dev/null > makefile.depend
  85.  
  86. depend:    zerodepend $(LINKSC) $(FILESC) $(SPECIAL_FILESC) $(FILESH) makefile.depend.tags $(MOD_WORKSPACE)
  87.     @echo makedepend for $(MODULE)
  88.     @if (test -r $(MODULE).C) then \
  89.         echo     makedepend $(MODULE).C ; \
  90.         echo makedepend -fmakefile.depend -D__cplusplus -- $(CFLAGS) -- $(MODULE).C $(SPECIAL_FILESC) ;\
  91.         makedepend -fmakefile.depend -D__cplusplus -- $(CFLAGS) -- $(MODULE).C $(SPECIAL_FILESC) ;\
  92.     else \
  93.         echo makedepend -fmakefile.depend -D__cplusplus -I/usr/misc/C++/include -- $(CFLAGS) -- $(FILESC) $(LINKSC) $(SPECIAL_FILESC) ; \
  94.         makedepend -fmakefile.depend -D__cplusplus -I/usr/misc/C++/include -- $(CFLAGS) -- $(FILESC) $(LINKSC) $(SPECIAL_FILESC) ; \
  95.     fi
  96.     -@rm -f /tmp/makefile.depend.$$$$; touch /tmp/makefile.depend.$$$$;\
  97.     sed -f $(PATHTOROOT)/makefile.sed  makefile.depend >\
  98.         /tmp/makefile.depend.$$$$;\
  99.     cat /tmp/makefile.depend.$$$$ makefile.depend.tags | sort |\
  100.         uniq > makefile.depend; rm /tmp/makefile.depend.$$$$
  101.     @rm -f makefile.depend.tags
  102.     @for i in `echo ${MOD_WORKSPACE}`; do (\
  103.             cd $$i; \
  104.             $(MAKE) "CC = $(CC)" $@\
  105.         ); done;
  106.  
  107.  
  108. # Get baseline for those modules listed in $(MOD_BASELINE),
  109. # and do recursive make for those listed in $(MOD_WORKSPACE)
  110. #
  111. getbaselineparts: $(MOD_BASELINE) $(MOD_WORKSPACE)
  112.     for i in `echo ${MOD_BASELINE}`; do (\
  113.         cd $$i;\
  114.         $(MAKE) getbaseline\
  115.     ); done;
  116.     for i in `echo ${MOD_WORKSPACE}`; do (\
  117.         cd $$i; \
  118.         $(MAKE) $@\
  119.     ); done;
  120.  
  121. $(LIBS) dummylibs:
  122.     (cd $(@D); $(MAKE) $(@F))
  123.  
  124. #
  125. # RCS STUFF
  126. #
  127. # rcsdiff target assumes that you have some thing(s) in the current
  128. # directory and that you have an RCS subdir or a link to such a thing.
  129. #
  130. rcsdiff: $(MOD_WORKSPACE)
  131.     -for i in `echo $(RCSFILES)`;\
  132.         do rcsdiff $(LOCK) $(RCSDIR)/$$i,v; done;
  133.     -for i in `echo $(MOD_WORKSPACE)`; do (\
  134.         cd $$i;\
  135.         $(MAKE) $@\
  136.     ); done;
  137.  
  138. .h.h-ci:
  139.     ci -u $(RCSDIR)/$<,v
  140. .h.ci:
  141.     ci -u $(RCSDIR)/$<,v
  142. .c.c-ci:
  143.     ci -u $(RCSDIR)/$<,v
  144. .c.ci:
  145.     ci -u $(RCSDIR)/$<,v
  146. .C.C-ci:
  147.     ci -u $(RCSDIR)/$<,v
  148. .C.ci:
  149.     ci -u $(RCSDIR)/$<,v
  150.  
  151. .h.h-co:
  152.     co -l $(RCSDIR)/$<,v
  153. .h.co:
  154.     co -l $(RCSDIR)/$<,v
  155. .c.c-co:
  156.     co -l $(RCSDIR)/$<,v
  157. .c.co:
  158.     co -l $(RCSDIR)/$<,v
  159. .C.C-co:
  160.     co -l $(RCSDIR)/$<,v
  161. .C.co:
  162.     co -l $(RCSDIR)/$<,v
  163.  
  164. .h.h-rcsdiff:
  165.     -rcsdiff $(RCSDIR)/$<,v
  166. .h.rcsdiff:
  167.     -rcsdiff $(RCSDIR)/$<,v
  168. .c.c-rcsdiff:
  169.     -rcsdiff $(RCSDIR)/$<,v
  170. .c.rcsdiff:
  171.     -rcsdiff $(RCSDIR)/$<,v
  172. .C.C-rcsdiff:
  173.     -rcsdiff $(RCSDIR)/$<,v
  174. .C.rcsdiff:
  175.     -rcsdiff $(RCSDIR)/$<,v
  176.  
  177. .c.rcslock:
  178.     co -l $(RCSDIR)/$*.c,v
  179.  
  180. .C.rcslock:
  181.     co -l $(RCSDIR)/$*.C,v
  182.  
  183. #
  184. # COMPILATION
  185. #
  186.  
  187. .c.o:
  188.     $(CC) -c $(CFLAGS) $*.c
  189.  
  190. .C.o:
  191.     $(COMPILE.C) $< $(OUTPUT_OPTIONS)
  192.  
  193. true:
  194.     @echo 
  195.  
  196. links : true
  197.     -for i in `echo ${LINKS}`;\
  198.         do (ln -s $$i . ); done;
  199.  
  200. copies: $(COPIES)
  201.  
  202. #$(PTREP) dummyptrep:
  203. #    -$(CPLUSPLUS) $(INCLUDES) $(CFLAGS) $@.C
  204. #    @-echo "^^^ IGNORE ^^^: (The above is necessary to get the ptrepository made.)"
  205. #    @-echo "unless template symbols are unresolved (with AT&T C++), in which case,"
  206. #    @-echo "setenv PTOPTS -pta"
  207. #    @-echo "and re-make."
  208. #    -rm -f $@
  209.  
  210. $(LINKS) dummylink: 
  211.     (cd $(@D); $(MAKE) $(@F))
  212.     -ln -s $@ .
  213.  
  214. $(COPIES) dummycopy: true
  215.     -cp $@ .
  216.  
  217. co: $(MOD_WORKSPACE)
  218.     -for i in `echo $(RCSFILES)`;\
  219.         do co $(LOCK) $(RCSDIR)/$$i,v; done;
  220.     for i in `echo $(MOD_WORKSPACE)`; do (\
  221.         cd $$i;\
  222.         $(MAKE) "LOCK=$(LOCK)" $@\
  223.     ); done;
  224.  
  225. ci:
  226.     -for i in `echo $(MAKEFILES)`;\
  227.         do ci $(LOCK) $(RCSDIR)/$$i,v; done;
  228.     -for i in `echo $(FILESC) $(FILESH) $(LOCALRCSFILES)`;\
  229.         do ci $(LOCK) $(RCSDIR)/$$i,v; done;
  230.     -for i in `echo $(MOD_WORKSPACE)`; do (\
  231.         cd $$i; \
  232.         echo $$i;\
  233.         $(MAKE) "LOCK=$(LOCK)" $@\
  234.     ); done;
  235.  
  236. touch:  $(MOD_WORKSPACE)
  237.     for i in `echo ${MOD_WORKSPACE}`; \
  238.         do (cd $$i; $(MAKE) $@); done;
  239.     touch $(EXECS) $(FILESO)
  240.  
  241. saber_obj:
  242.     #load $(CFLAGS) $(FILESO)
  243.  
  244. saber_src:
  245.     #load $(CFLAGS) $(FILESC)
  246.  
  247. install: workspace.mod local_install
  248. local_install: $(EXECS) $(RESULTS)
  249.     for i in `echo $(EXECS)`; do (\
  250.         cp $$i $(BINDIR);\
  251.         strip $(BINDIR)/$$i;\
  252.     ); done;
  253.  
  254.  
  255. binary_install_exec: $(FILESO)
  256.     $(CPLUSPLUS) $(LDFLAGS) $(CFLAGS) $(FILESO) $(BINARY_INSTALL_LIBS)\
  257.         -o $(BINDIR)/$(EXECS)
  258.     strip $(BINDIR)/$(EXECS)
  259.     
  260. source_release:  source_release_subdirs
  261. source_release_subdirs:
  262.         for i in `echo $(MOD_WORKSPACE)`;\
  263.                 do (cd $$i; $(MAKE) source_release); done;
  264.  
  265. cleaninstall: cleaninstall_binaries
  266. cleaninstall_binaries:
  267.     for i in `echo $(EXECS) $(RESULTS)`; do (\
  268.         rm -f $$i;\
  269.     ); done;
  270.  
  271. makercs: $(MOD_WORKSPACE) $(MOD_BASELINE)
  272.     ln -s $(BASELINE)/$(PARENT)/$(MODULE)/RCS RCS
  273.     for i in `echo $(MOD_WORKSPACE) $(MOD_BASELINE)`; do (\
  274.         cd $$i;\
  275.         $(MAKE) $@\
  276.     ); done;
  277.  
  278. getmakefiles.1level: 
  279.     -for i in `echo $(MAKEFILES)`; do \
  280.         co $(LOCK) $(RCSDIR)/$$i,v;\
  281.     done;
  282.  
  283. getmakefiles: getmakefiles.1level $(MOD_WORKSPACE) $(MOD_BASELINE) 
  284.     for i in `echo $(MOD_WORKSPACE) $(MOD_BASELINE)`; do (\
  285.         cd $$i; \
  286.         $(MAKE) $@ \
  287.     ); done;
  288.  
  289. include $(PATHTOROOT)/makefile.tags
  290.